package leetcode.editor.cn;

import java.util.*;
import leetcode.editor.common.*;

public class ContainerWithMostWater {

    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
        public int maxArea(int[] height) {
            // 使用双指针技巧
            // 找到左侧 和 右侧 两边
            int left = 0;
            int right = height.length-1;

            int maxArea = 0;
            while (left<right){
                int area = Math.min(height[left],height[right])*(right-left);

               maxArea=Math.max(maxArea,area);
                // 让矮的一边 先动，找到最大面积
                // 为什么 移动 矮的那一边
                // 因为矩形的高度是由 min(height[left], height[right]) 即较低的一边决定的
                // 你如果移动较低的那一边，那条边可能会变高，使得矩形的高度变大，进而就「有可能」使得矩形的面积变大；相反，如果你去移动较高的那一边，矩形的高度是无论如何都不会变大的，所以不可能使矩形的面积变得更大。
                if(height[left]<height[right]){
                    left++;
                }else{
                    right--;
                }
                }


            return maxArea;

            }





        }
    }
    //leetcode submit region end(Prohibit modification and deletion)

    
